#ifndef SIP_WTSXTYPES_HPP__
#define SIP_WTSXTYPES_HPP__

#include "WTSXSipService/SipSXServiceConfigure.hpp"
#include "WTResipDll/SipWtTypes.hpp"

#include <string>
#include <memory>

namespace wtsxsip{

typedef struct tagNetAddr
{
    std::string ip;
    unsigned int port;
} SNetAddr;


typedef enum {
    UDP, 
    TCP,
    TLS
} ETransport;


typedef struct tagMsgBodyBase
{
    std::string type;
    std::string subType;
    std::string contents;
} SMsgBodyBase;


typedef struct tagHeaders
{
    //Request
    wtsip::SUri sTar;

    //Response
    wtsip::ESipCodeType eCode;
    std::string szReason;    

    //Common
    wtsip::EMethodTypes eMethod;
    int iExpire;
    int iSeq;
    wtsip::SUri sRemote;
    wtsip::SUri sLocal;
    wtsip::SUri sLContact;
    wtsip::SUri sRContact;

    tagHeaders(): iExpire(-1), iSeq(-1){}
} SHeaders;



}//namespace

#endif

